package com.ufcg.lvc.client;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

/**
 * 
 * The client side stub for the RPC service.
 * 
 * @author Larissa Costa
 * 
 */
@RemoteServiceRelativePath("greetCRUD")
public interface GreetingServiceCRUD extends RemoteService {

	String cadastraUsuarioSenha(String usuario, String senha, String nome, String email);

	Boolean deletarLinha(String tabela, String chave, String valor, String Id_usuario);

	String gerarLink(String titulo, String Id_usuario);

	List<List<String>> getAlternativas(String titulo, String Id_usuario);

	String getAlunoDaProva(String tituloProva, String nomeTurma, String Id_usuario);

	List<List<String>> getAlunos(String Id_usuario);

	List<String> getAlunosDaTurma(String turma, String Id_usuario);

	String getCabecalhoInstituicao(String nome, String Id_usuario);

	ArrayList<String> getDadosUsuario(String Id_usuario);

	List<List<String>> getGabaritoProva(String nome_prova);

	String getIDAluno(String nome, String Id_usuario);

	String getIDIntituicao(String nome, String Id_usuario);

	String getIDModelo(String titulo, String Id_usuario);

	String getIDQuestao(String nome, String Id_usuario);

	String getIDTurma(String nome, String Id_usuario);

	List<String> getIntituicao__(String nome, String Id_usuario);

	List<String> getModeloDeProva(String modelo_id);

	List<List<String>> getModelosDeProva(String Id_usuario);

	String getNextIDAluno();

	String getNextIDModelo();

	String getNextIDQuestao();

	List<String> getNomeAlunos(String Id_usuario);

	List<String> getNomeDisciplinas();

	List<String> getNomeIntituicoes(String Id_usuario);

	String getNomeUsuario(String Id_usuario);

	List<String> getProvas(String nome_, String Id_usuario);

	ArrayList<ArrayList<String>> getProvasNotas(String nomeTurma, String subtituloProva, String Id_usuario);

	List<String> getProvasSubtitulo(String turma_nome, String Id_usuario);

	ArrayList<String> getProvasSubtitulos(String turmaNome, String Id_usuario);

	String getQuestaoID(String titulo, String Id_usuario);

	List<List<String>> getQuestoes(String Id_usuario);

	List<List<String>> getQuestoesDoModelo(String modelo_id, String Id_usuario);

	List<List<String>> getQuestoesDoModeloDeProva(String modelo_id);

	ArrayList<ArrayList<String>> getRespostasEValoresGabarito(String tituloProva, String turma, String Id_usuario);

	List<List<String>> getTurmas(String Id_usuario);

	String gravarResultados(String tituloProva, String texto, String Login_usuario);

	String[] newProvaDoModelo(String string, String nomeAluno, String modelo_id, String Id_usuario);

	Boolean salvarAlternativa(String questao_id, ArrayList<String> imagem_id, ArrayList<String> enunciado, ArrayList<String> correta);

	Boolean salvarAlunos(String nome, String matricula, String instituicao, String Id_usuario);

	Boolean salvarAlunosDaTurma(String turma, ArrayList<String> alunos, String Id_usuario);

	void salvarInstituicao_Aluno(String instituicao_id, String matricula);

	boolean salvarIntituicao(String nome, String cabecalho, String Id_usuario);

	Boolean salvarModeDeProva(String titulo, String assunto, String comentario, String modelo_id, String Id_usuario);

	Boolean salvarNotaDaProva(String tituloProva, String nota);

	String salvarProva(String titulo, String texto, String nomeTurma, String tituloModeloDeProva, String Id_usuario, String Login_usuario);

	Boolean salvarQuestao(String titulo, String assunto, String enunciado, String dificuldade, String tipo, String imagem, String Id_usuario);

	Boolean salvarQuestao(String titulo, String assunto, String enunciado, String dificuldade, String tipo, String imagem, String questaoID, String Id_usuario);

	Boolean salvarQuestaoNoModeloProva(String questao_id, String modelo_id, String valor);

	Boolean salvarTurma(String instituicao, String disciplina, String nome, String ano, ArrayList<String> listaAlunos, String Id_usuario);

	Boolean updateAluno(String nomeAntigo, String matriculaAntiga, String instituicaoAntiga, String nome, String matricula, String instituicao, String Id_usuario);

	Boolean updateInstituicao(String nomeAntigo, String nome, String cabecalho, String Id_usuario);

	Boolean updateModeDeProva(String tituloAntigo, String titulo, String assunto, String comentario);

	Boolean updateQuestao(String tituloAntigo, String titulo, String assunto, String enunciado, String dificuldade, String tipo, String imagem, String Id_usuario);

	Boolean updateTurma(String nomeAntigo, String nome, String instituicao, String disciplina, String ano, ArrayList<String> listaAlunos, String Id_usuario);

	Boolean updateUsuario(String nome, String login, String email, String senhaNova, String senhaAntiga, String Id_usuario);

	Boolean deletarQuestaoDoModeloDeProva(String modeloID, String tituloQuestao, String valorQuestao, String Id_usuario);

}
